#ifndef __TARGET_FEEDER_HPP__
#define __TARGET_FEEDER_HPP__

#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <vector>
#include <iostream>


using namespace cv;
using namespace std;


class TargetFeeder
{

private:
	RNG rng;
	
public:

	Mat map_image;
	Mat trajectory;
	Mat map_obstacles;

	vector<Point2f> clicked_points;
	vector<Point2f> via_points;

	TargetFeeder(Mat& InputImage, Mat& InputObstacles);

	~TargetFeeder(void);

	
	void on_mouse( int event, int x, int y, int flags, void* param );

	// visualize the map and use mouse click to define the workspace
	void visualize();

	// generate random targets with normal distribution
	void generate(int num_point);

};


#endif